import axios from "axios";
import { ElMessage } from "element-plus";

// 创建axios的一个实例
const request = axios.create({
  // 配置公共请求地址
  baseURL: '/',
  // 配置请求时长 (当请求超过该时间,则自动中断请求)
  timeout: 5000,
  // // 配置请求头(只针对post 请求有效)
  headers: { 'Content-Type': 'application/json' }
});

// 添加一个请求拦截器
request.interceptors.request.use(
  (config: any) => {
    // 这里按需配置 | 登陆放token等
    // config.headers['Access-Control-Allow-Origin'] = '*'
    // 每次发送请求之前判断是否存在token，如果存在，则统一在http请求的header都加上token，不用每次请求都手动添加了
    const queryParams:any = localStorage.getItem('queryParams');
    const { token,tenantId } = JSON.parse(queryParams);
    token && (config.headers['Authorization'] = `Bearer ${token}`);
    // tenantId && (config.headers.tenantId = tenantId);
    tenantId && (config.headers['X-Coral-Tenant'] = tenantId);
    // deptId && (config.headers.deptId = deptId);
    return config;
  },
  (error) => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加一个响应拦截器
request.interceptors.response.use(
  (res) => {
    if (res.status === 200) {
      if (res.config.responseType === "blob") {
        return res.data;
      } else {
        return res.data
      }
    }
  },
  (error) => {
    // 响应错误
    return Promise.reject(error);
  }
);

export default request
